package api

import (
	"admin100/app/model"
	"admin100/app/service"
	"admin100/library/define"
	"admin100/library/response"

	"github.com/gogf/gf/net/ghttp"
)

var MenuMgr = menuMgrApi{}

type menuMgrApi struct{}

// @summary 菜单列表
// @tags    菜单管理
// @produce json
// @router  /menu/list [GET]
// @success 200 {object} response.JsonResponse "执行结果"
// func (a *menuMgrApi) List(r *ghttp.Request) {
// 	data := service.Menu.List()
// 	response.JsonSuc(r, data)
// }

// @summary 添加菜单
// @tags    菜单管理
// @produce json
// @param   name formData  string true "标识"
// @param   title formData  string true "标题"
// @param   parentId formData  string true "父节点ID"
// @param   seq formData  int false "序号"
// @param   isShow formData  int true "是否显示"
// @param   icon formData  string false "图标关键字"
// @router  /menu/add [POST]
// @success 200 {object} response.JsonResponse "执行结果"
func (a *menuMgrApi) Add(r *ghttp.Request) {
	var req *model.MyadminMenuAddReq
	if err := r.ParseForm(&req); err != nil {
		response.JsonExitWithMsg(r, define.Fail, err.Error())
	}

	response.JsonSuc(r, service.Menu.Add(req))
}

// @summary 编辑菜单
// @tags    菜单管理
// @produce json
// @param   id formData  string true "菜单ID"
// @param   name formData  string true "标识"
// @param   title formData  string true "标题"
// @param   parentId formData  string true "父节点ID"
// @param   seq formData  int false "序号"
// @param   isShow formData  int true "是否显示"
// @param   icon formData  string false "图标关键字"
// @router  /menu/edit [POST]
// @success 200 {object} response.JsonResponse "执行结果"
func (a *menuMgrApi) Edit(r *ghttp.Request) {
	var req *model.MyadminMenuEditReq
	if err := r.ParseForm(&req); err != nil {
		response.JsonExitWithMsg(r, define.Fail, err.Error())
	}

	response.JsonSuc(r, service.Menu.Edit(req))
}

// @summary 删除菜单
// @tags    菜单管理
// @produce json
// @param   id formData  int true "菜单ID"
// @router  /menu/del [POST]
// @success 200 {object} response.JsonResponse "执行结果"
func (a *menuMgrApi) Del(r *ghttp.Request) {
	var req *model.MyadminMenuIdReq
	if err := r.ParseForm(&req); err != nil {
		response.JsonExitWithMsg(r, define.Fail, err.Error())
	}

	response.JsonSuc(r, service.Menu.Del(req.Id))
}
